package com.yao2san.simdif.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.yao2san.simdif.bean.request.*;
import com.yao2san.simdif.bean.response.DatasourceListRes;
import com.yao2san.simdif.entity.ColumnInfo;
import com.yao2san.simdif.entity.Datasource;
import com.yao2san.simdif.entity.TableInfo;

import java.util.List;

/**
 * 数据源管理
 */
public interface DatasourceManageService extends IService<Datasource> {
    /**
     * 新增数据源
     *
     * @param datasource 数据源
     */
    Long add(DatasourceAddReq datasource);

    /**
     * 查询数据源列表
     */
    PageInfo<DatasourceListRes> list(DatasourceListReq req);

    /**
     * 查询数据源
     *
     * @param datasourceId 数据源ID
     */
    Datasource getDatasource(Long datasourceId);

    /**
     * 测试连接
     */
    void testConnection(DatasourceConnectionTestReq req);

    void sync(DatasourceSyncReq req);

    List<TableInfo> getTableInfos(Long datasourceId);

    List<ColumnInfo> getColumnInfos(Long datasourceId);


    void update(DatasourceUpdateReq req);
    void delete(DatasourceDeleteReq req);
}
